package preferMgr;

import android.content.Context;

import com.netease.pkgRelated.XoneConsts;

/**
 * 本类定义、设置及读取xone需要保存在preferences中的配置项
 * @author echo
 * @since  2013-05-06
 */
public class XonePrefHelper extends PrefeHelper {

    /**
     * 是否首次使用本软件，默认是首次使用
     */
    public static final String FIRST_USE ="first_use";
    /**
     * 设置界面各设置项 start
     */
    //与服务端同步部分
    public static final String ReceiveAllMessage ="receiveAllMessage";//接收所有人的私信
    public static final String ReceiveAllComment ="receiveAllComment";//接收所有人的评论
    public static final String PushOn ="push_on";//开启通知推送
    public static final String NewPraiseOn ="new_praise_on";//开启赞
    public static final String AtMeOn ="atme_on";//开启@
    public static final String NewCommentOn ="new_comment_on";//开启新评论
    public static final String NewMessageOn ="new_message_on";//开启新私信
    public static final String NewFansOn ="new_fans_on";//开启新粉丝
    public static final String NewFriendDynamicOn ="new_frienddynamic_on";//开启新好友动态
    public static final String ShockOn ="shock_on";//开启震动提醒
    public static final String SoundOn ="sound_on";//开启声音提醒
    public static final String SettingUpdateTime ="setting_update_time";//设置项修改的时间，本地设置的时间，同步回来更新的用服务器时间
    //本地部分
    public static final String SettingPicQuality = "setting_pic_quality";//设置上传图片质量
    public static final String SettingPicHighWhenWifi = "setting_pichigh_when_wifi";//当wifi时以高清质量上传
    public static final String SettingReadModeText = "setting_readmode_text";//纯文字阅读模式
    /**
     * 设置界面各设置项 end
     */
    /**
     * 版本更新，最近一次提示的版本号
     */
    public static final String UPDATE_PRE_VERSION  = "version"; //最近一次提示版本号
    public static boolean getFirstUse(Context context) {
        return getBoolean(context, FIRST_USE, true);
    }

    public static void putFirstUse(Context context, boolean value) {
        putBoolean(context, FIRST_USE, value);
    }
    /**
     * 设置界面各设置项 start
     */
    public static boolean getReceiveAllMessage(Context context) {
        return getBoolean(context, ReceiveAllMessage, true);
    }
    public static void putReceiveAllMessage(Context context, boolean value) {
        putBoolean(context, ReceiveAllMessage, value);
    }
    
    public static boolean getReceiveAllComment(Context context) {
        return getBoolean(context, ReceiveAllComment, true);
    }
    public static void putReceiveAllComment(Context context, boolean value) {
        putBoolean(context, ReceiveAllComment, value);
    }
    
    public static boolean getPushOn(Context context) {
        return getBoolean(context, PushOn, true);
    }
    public static void putPushOn(Context context, boolean value) {
        putBoolean(context, PushOn, value);
    }
    
    public static boolean getNewPraiseOn(Context context) {
        return getBoolean(context, NewPraiseOn, true);
    }
    public static void putNewPraiseOn(Context context, boolean value) {
        putBoolean(context, NewPraiseOn, value);
    }
    
    public static boolean getAtMeOn(Context context) {
        return getBoolean(context, AtMeOn, true);
    }
    public static void putAtMeOn(Context context, boolean value) {
        putBoolean(context, AtMeOn, value);
    }
    
    public static boolean getNewCommentOn(Context context) {
        return getBoolean(context, NewCommentOn, true);
    }
    public static void putNewCommentOn(Context context, boolean value) {
        putBoolean(context, NewCommentOn, value);
    }
    
    public static boolean getNewMessageOn(Context context) {
        return getBoolean(context, NewMessageOn, true);
    }
    public static void putNewMessageOn(Context context, boolean value) {
        putBoolean(context, NewMessageOn, value);
    }
    
    public static boolean getNewFansOn(Context context) {
        return getBoolean(context, NewFansOn, true);
    }
    public static void putNewFansOn(Context context, boolean value) {
        putBoolean(context, NewFansOn, value);
    }
    
    public static boolean getNewFriendDynamicOn(Context context) {
        return getBoolean(context, NewFriendDynamicOn, true);
    }
    public static void putNewFriendDynamicOn(Context context, boolean value) {
        putBoolean(context, NewFriendDynamicOn, value);
    }
    
    public static boolean getShockOn(Context context) {
        return getBoolean(context, ShockOn, true);
    }
    public static void putShockOn(Context context, boolean value) {
        putBoolean(context, ShockOn, value);
    }
    
    public static boolean getSoundOn(Context context) {
        return getBoolean(context, SoundOn, true);
    }
    public static void putSoundOn(Context context, boolean value) {
        putBoolean(context, SoundOn, value);
    }
    
    public static long getSettingUpdateTime(Context context) {
        return getLong(context, SettingUpdateTime, 0);
    }
    public static void putSettingUpdateTime(Context context, long value) {
        putLong(context, SettingUpdateTime, value);
    }
    /**
     * 检查是否需要push,总开关打开并且至少有一项打开
     */
    public static boolean getNeedPush(Context context) {
        boolean pushOpen = getPushOn(context)
                && (XonePrefHelper.getAtMeOn(context) || XonePrefHelper.getNewCommentOn(context)
                        || XonePrefHelper.getNewFansOn(context)
                        || XonePrefHelper.getNewFriendDynamicOn(context) || XonePrefHelper
                            .getNewMessageOn(context));
        return pushOpen;
    }
  //本地部分
    public static boolean getPicHighWhenWifi(Context context) {
        return getBoolean(context, SettingPicHighWhenWifi, true);
    }
    public static void putPicHighWhenWifi(Context context, boolean value) {
        putBoolean(context, SettingPicHighWhenWifi, value);
    }
    public static int getPicQuality(Context context){
        return getInt(context, SettingPicQuality, XoneConsts.PIC_QUALTY_TYPE.normal);
    }
    public static void putPicQuality(Context context, int value){
        putInt(context, SettingPicQuality, value);
    }
    public static boolean getReadModeText(Context context) {
        return getBoolean(context, SettingReadModeText, false);
    }
    public static void putReadModeText(Context context, boolean value) {
        putBoolean(context, SettingReadModeText, value);
    }
    
    /**
     * 设置界面各设置项 end
     */
    
    /**
     * 取得最近一次更新信息的版本号
     * @param context
     * @return
     */
    public static final String getPreUpdateVersion(Context context){
        return getString(context, UPDATE_PRE_VERSION, "0.0.0");
    }
    
    /**
     * 设置最近一次更新信息的版本号
     * @param context
     * @param version
     */
    public static final void putPreUpdateVersion(Context context, String version){
        putString(context, UPDATE_PRE_VERSION, version);
    }
}
